#include "LinearMath/btReducedVector.h"
#ifdef __cplusplus
extern "C" {
#endif
btReducedVector* bullet_NewbtReducedVector(){
	btReducedVector* wrap_out = new btReducedVector();
	return wrap_out;
}

btReducedVector* bullet_NewbtReducedVector1(int sz){
	int c_arg_sz=sz;
	btReducedVector* wrap_out = new btReducedVector(c_arg_sz);
	return wrap_out;
}

double bullet_btReducedVector_dot(btReducedVector* c_this,btReducedVector* other){
	btReducedVector const& c_arg_other=(btReducedVector const&)(*other);
	btScalar c_out = c_this->dot(c_arg_other);
	double wrap_out = (c_out);
	return wrap_out;
}

int bullet_btReducedVector_GetFieldOfM_sz(btReducedVector* c_this){
	return (int)(c_this->m_sz);
}

double bullet_btReducedVector_length2(btReducedVector* c_this){
	btScalar c_out = c_this->length2();
	double wrap_out = (c_out);
	return wrap_out;
}

void bullet_btReducedVector_normalize(btReducedVector* c_this){
	c_this->normalize();
}

void bullet_btReducedVector_print(btReducedVector* c_this){
	c_this->print();
}

btReducedVector* bullet_btReducedVector_proj(btReducedVector* c_this,btReducedVector* other){
	btReducedVector const& c_arg_other=(btReducedVector const&)(*other);
	btReducedVector c_out = c_this->proj(c_arg_other);
	btReducedVector* wrap_out = new btReducedVector(c_out);
	return wrap_out;
}

void bullet_btReducedVector_simplify(btReducedVector* c_this){
	c_this->simplify();
}

void bullet_btReducedVector_sort(btReducedVector* c_this){
	c_this->sort();
}

void bullet_btReducedVector_test(btReducedVector* c_this){
	c_this->test();
}

bool bullet_btReducedVector_testAdd(btReducedVector* c_this){
	bool c_out = c_this->testAdd();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btReducedVector_testDot(btReducedVector* c_this){
	bool c_out = c_this->testDot();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btReducedVector_testMinus(btReducedVector* c_this){
	bool c_out = c_this->testMinus();
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btReducedVector_testMultiply(btReducedVector* c_this){
	bool c_out = c_this->testMultiply();
	bool wrap_out = (c_out);
	return wrap_out;
}

TwoInts* bullet_NewTwoInts(){
	TwoInts* wrap_out = new TwoInts();
	return wrap_out;
}

int bullet_TwoInts_GetFieldOfA(TwoInts* c_this){
	return (int)(c_this->a);
}

int bullet_TwoInts_GetFieldOfB(TwoInts* c_this){
	return (int)(c_this->b);
}

#ifdef __cplusplus
}
#endif
